﻿using System;
using System.Collections;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using CRUD.DAO;
using CapaGestion.Spring;
using GestionadorBaseDatos;
using CapaNegocios;

public partial class MiCuenta : Base
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            Usuario usuarioConectado = (Usuario)Session["login"];

            nombre.Text = usuarioConectado.Nombre;

            apellidos.Text = usuarioConectado.Apellido;

            direccion.Text = usuarioConectado.Direccion;

            ciudad.Text = usuarioConectado.Ciudad;

            codigoPostal.Text = usuarioConectado.CodigoPostal.ToString();

            Pais.Text = usuarioConectado.Pais;

            correo.Text = usuarioConectado.CorreoElectronico;


            telefono.Text = usuarioConectado.Telefono;

            labelError.Text = " ";
        }
    }

   

    


    public void actualizarDatosUsuario(object sender, EventArgs e)
    {
        
        string actualizacionDatos = " ";

       

        Usuario usuarioConectado = (Usuario)Session["login"];

        if (usuarioConectado.Password == contrasena.Text)
        {
            System.Threading.Thread.Sleep(3000);
            if (usuarioConectado.Direccion != direccion.Text)
            {

                actualizacionDatos = "Actualizacion de la Direccion: " + direccion.Text;

                MantenerUsuario(usuarioConectado, actualizacionDatos);

                actualizacionDatos = " ";
            }
            
            usuarioConectado.Direccion = direccion.Text;

           if (usuarioConectado.Ciudad != ciudad.Text)
            {
                actualizacionDatos = actualizacionDatos + " Actualizacion de ciudad: " + ciudad.Text;
                MantenerUsuario(usuarioConectado, actualizacionDatos);
                actualizacionDatos = " ";
           }


            usuarioConectado.Ciudad = ciudad.Text;

            if (usuarioConectado.CodigoPostal != int.Parse(codigoPostal.Text))
            {
                actualizacionDatos = actualizacionDatos + "Actualizacion del codigo postal: " + codigoPostal.Text;
                MantenerUsuario(usuarioConectado, actualizacionDatos);
                actualizacionDatos = " ";
            }
            
            usuarioConectado.CodigoPostal = int.Parse(codigoPostal.Text);

            if (usuarioConectado.Pais != Pais.Text)
            {
                actualizacionDatos = actualizacionDatos + "Actualizacion del pais de residencia: " + Pais.Text;
                MantenerUsuario(usuarioConectado, actualizacionDatos);
                actualizacionDatos = " ";
            }

            usuarioConectado.Pais = Pais.Text;

            if (usuarioConectado.CorreoElectronico != correo.Text)
            {
                actualizacionDatos = actualizacionDatos + "Actualizacion del correo electronico: " + correo.Text;
                MantenerUsuario(usuarioConectado, actualizacionDatos);
                actualizacionDatos = " ";
            }
            
            usuarioConectado.CorreoElectronico = correo.Text;

            if (usuarioConectado.Telefono != telefono.Text)
            {
                actualizacionDatos = actualizacionDatos + "Actualizacion del numero telefonico: " + telefono.Text;
                MantenerUsuario(usuarioConectado, actualizacionDatos);
                actualizacionDatos = " ";
            }

            usuarioConectado.Telefono = telefono.Text.ToString();

            IGestionUsuario usuario = AdministradorGestion.getGestionarUsuario();
          
            usuario.ActualizarDatosUsuario(usuarioConectado);
            
            



            Session["login"] = usuarioConectado;

            labelError.Text = " ";
        }
        else
       
        {
            labelError.Text = "Contrasena incorrecta";
            labelError.ForeColor =System.Drawing.Color.Red;
                
        }
    }

    public void VolverDatospersonales(object sender, EventArgs e)
    {
        this.Response.Redirect("MiCuenta.aspx");

    }

    public void MantenerUsuario(Usuario usuarioConectado, string descripcion)
    {
        IGestionMantenimientoUsuario gestionarMantenimientoUsuario = AdministradorGestion.getGestionarMantenimientoUsuario();
        MantenimientoUsuario usuarioMantener = new MantenimientoUsuario();
        usuarioMantener.Descripcion = descripcion;
        usuarioMantener.UsuarioMantenimiento = usuarioConectado;
        usuarioMantener.Fecha = DateTime.Now;
        gestionarMantenimientoUsuario.InsertarMantenimientoUsuario(usuarioMantener);
    }




}
